package com.yam.michael.service;

import java.util.List;

import com.xunjia.exception.XunjiaException;
import com.yam.michael.hibernate.pojo.AdvActivity;
import com.yam.michael.hibernate.pojo.AdvPosition;
import com.yam.michael.hibernate.pojo.AdvSerial;
import com.yam.michael.hibernate.pojo.HyperlinkAdvInfo;
import com.yam.michael.hibernate.pojo.Keywords;
import com.yam.michael.hibernate.pojo.KeywordsAdvInfo;

public interface AdvService {
	/**
	 * 从数据库中获取类似关键字列表
	 * @param size
	 * @param keywords
	 * @return
	 * @throws XunjiaException
	 */
	public List<String> getKeywordsByLike(int size,String keywords) throws XunjiaException;
	/**
	 * 按ID查询关键字信息
	 * @param kid
	 * @return
	 * @throws XunjiaException
	 */
	 
	public Keywords getKeywordsById(long kid) throws XunjiaException;
	/**
	 * 修改关键字信息
	 * @param keywords
	 * @param KeywordsAdvInfo
	 * @throws XunjiaException
	 */
	public void updateKeywords(Keywords keywords,List<KeywordsAdvInfo> KeywordsAdvInfo) throws XunjiaException;
	/**
	 * 删除关键字
	 * @param keywords
	 * @throws XunjiaException
	 */
	public void deleteKeywords(long	 kid) throws XunjiaException;
	/**
	 * 获取广告位置信息
	 * @return
	 * @throws XunjiaException
	 */
	public List<AdvPosition> getAdvPosition() throws XunjiaException;
	/**
	 * 增加广告活动
	 * @param advActivity
	 * @throws XunjiaException
	 */
	public void addAdvActivity(AdvActivity advActivity) throws XunjiaException;
	/**
	 * 修改广告活动
	 * @param advActivity
	 * @throws XunjiaException
	 */
	public void updateAdvActivity(AdvActivity advActivity) throws XunjiaException;
	/**
	 * 删除广告活动
	 * @param advActivity
	 * @throws XunjiaException
	 */
	public void deleteAdvActivity(long aid) throws XunjiaException;
	/**
	 * 增加广告系列
	 * @param advSerial
	 * @throws XunjiaException
	 */
	public void addAdvSerial(AdvSerial  advSerial)throws XunjiaException;
	/**
	 * 更新广告系列
	 * @param advSerial
	 * @throws XunjiaException
	 */
	public void updateAdvSerial(AdvSerial advSerial)throws XunjiaException;
	/**
	 * 删除广告系列
	 * @param advSerial
	 * @throws XunjiaException
	 */
	public void deleteAdvSerial(long sid)throws XunjiaException;
	/**
	 * 按用户ID获取广告系列
	 * @return
	 * @throws XunjiaException
	 */
	public List<AdvSerial> getAdvSerial(String ownerUserId) throws XunjiaException;
	/**
	 * 更新超链接广告信息
	 * @param hyperlinkAdvInfo 
	 * @throws XunjiaException
	 */
	public void updateHyperlinkAdvInfo(HyperlinkAdvInfo hyperlinkAdvInfo)throws XunjiaException;
	/**
	 * 删除超链接广告
	 * @param hid 超链接广告ID
	 * @throws XunjiaException
	 */
	public void deleteHyperlinkAdvInfo(long hid)throws XunjiaException;
	/**
	 * 按ID获取超链接广告信息
	 * @param ID 超链接广告
	 * @return
	 * @throws XunjiaException
	 */
	public HyperlinkAdvInfo getHyperlinkAdvInfoById(long ID) throws XunjiaException;
	/**
	 * 获取用户所有超链接广告
	 * @param ownerUserId 广告拥有者ID
	 * @param rowNum  起始条数
	 * @param pageNum 每页显示条数
	 * @return
	 * @throws XunjiaException
	 */
	public List<HyperlinkAdvInfo> getHyperlinkAdvInfoList(String ownerUserId,int rowNum,int pageNum) throws XunjiaException;
}
